home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / lib / mathlib / libblas / src_original / izamax.f < prev    next >
Encoding:
Text File  |  1994-08-02  |  1.3 KB  |  57 lines

  1.       INTEGER          FUNCTION IZAMAX( N, ZX, INCX )
  2. *
  3. *     finds the index of element having max. absolute value.
  4. *     jack dongarra, 3/11/78.
  5. *
  6. *     .. Scalar Arguments ..
  7.       INTEGER                           INCX, N
  8. *     ..
  9. *     .. Array Arguments ..
  10.       COMPLEX*16                        ZX( 1 )
  11. *     ..
  12. *     .. Local Scalars ..
  13.       INTEGER                           I, IX
  14.       DOUBLE PRECISION                  SMAX
  15. *     ..
  16. *     .. External Functions ..
  17.       DOUBLE PRECISION                  DCABS1
  18.       EXTERNAL                          DCABS1
  19. *     ..
  20. *     .. Executable Statements ..
  21. *
  22.       IZAMAX = 1
  23.       IF( N.LE.1 )
  24.      $   RETURN
  25.       IF( INCX.EQ.1 )
  26.      $   GO TO 30
  27. *
  28. *        code for increment not equal to 1
  29. *
  30.       IX = 1
  31.       IF( INCX.LT.0 )
  32.      $   IX = 1 - ( N-1 )*INCX
  33.       SMAX = DCABS1( ZX( IX ) )
  34.       IX = IX + INCX
  35.       DO 20 I = 2, N
  36.          IF( DCABS1( ZX( IX ) ).LE.SMAX )
  37.      $      GO TO 10
  38.          IZAMAX = I
  39.          SMAX = DCABS1( ZX( IX ) )
  40.    10    IX = IX + INCX
  41.    20 CONTINUE
  42.       IF( INCX.LT.0 )
  43.      $   IZAMAX = N - IZAMAX + 1
  44.       RETURN
  45. *
  46. *        code for increment equal to 1
  47. *
  48.    30 SMAX = DCABS1( ZX( 1 ) )
  49.       DO 40 I = 2, N
  50.          IF( DCABS1( ZX( I ) ).LE.SMAX )
  51.      $      GO TO 40
  52.          IZAMAX = I
  53.          SMAX = DCABS1( ZX( I ) )
  54.    40 CONTINUE
  55.       RETURN
  56.       END
  57.